package name.huliqing.qfaces.temp;
//package name.huliqing.qfaces.component;
//
//import java.io.IOException;
//import javax.faces.component.UIComponent;
//import javax.faces.context.ResponseWriter;
//import name.huliqing.qfaces.QFaces;
//
//public class ____20100629_FrameInner implements java.io.Serializable {
//
//    private final String styleFixBug="_qf_non";
//
//    public enum CssPosition {
//        /** static */
//        STATIC,
//        /** absolute */
//        ABSOLUTE,
//        /** fixed */
//        FIXED,
//        /** relative */
//        RELATIVE
//    }
//    private UIComponent parent;
//    // Frame,窗口的id,通过这个ID，可以获得这个窗口的实例，
//    // 并以此来控制窗口的显示，关闭，移动等。。
//    private String frameId;
//    // Frame,窗口包含labelHeader的容器(如div) id
//    private String headerId;
//    // Frame,窗口中close按钮的id
//    private String closeId;
//    // Frame,header的标签描述
//    private String labelHeader;
//    // Frame,指定了窗口在客户端是否为可见的
//    private Boolean visible;
//    // Frame,指定窗口是否可以拖动的
//    private Boolean drag;
//    // Frame,指定是否渲染窗口的边框
//    private Boolean renderBorder;
//    // Frame,指定是否渲染窗口的close按钮
//    private Boolean renderCloseButton;
//    // Frame,指定窗口的header的css样式类
//    private String styleClassHeader;
//    // Frame,指定窗口的css位置属性,取值只能是
//    // : absolute, fixed,relative,static中之一，默认为：static
//    private String cssPosition; // absolute,fixed,relative,static
//    // Frame,指定窗口的皮肤样式
//    private String face;
//
//    public ____20100629_FrameInner(UIComponent parent) {
//        this(parent, null);
//    }
//
//    public ____20100629_FrameInner(UIComponent parent, String frameId) {
//        this.parent = parent;
//        this.frameId = frameId;
//        if (this.frameId == null) {
//            this.reloadFrameId(parent.getClientId(QFaces.getFacesContext()) + ":-frame");
//        }
//        init();
//    }
//
//    private final void init() {
//        reloadHeaderId(frameId + ":-header");
//        reloadCloseId(frameId + ":-close");
//        reloadLabelHeader(parent.getClass().getSimpleName());
//        reloadVisible(true);
//        reloadDrag(false);
//        reloadRenderBorder(true);
//        reloadRenderCloseButton(true);
//        reloadStyleClassHeader("_qf_07_header");
//        reloadCssPosition(CssPosition.STATIC);
//        reloadFace("1");
//    }
//
//    public final void encodeBegin(ResponseWriter rw) throws IOException {
//        if (this.renderBorder) {
//            this.encodeBeginWidthBorder(rw);
//        } else {
//            this.encodeBeginNoBorder(rw);
//        }
//    }
//
//    public final void encodeEnd(ResponseWriter rw) throws IOException {
//        if (this.renderBorder) {
//            this.encodeEndWidthBorder(rw);
//        } else {
//            this.encodeEndNoBorder(rw);
//        }
//
//        if (this.drag) {
//            String dragEvent = "Q.U.toEnableDrag(\"" + this.headerId + "\", \"" + this.frameId + "\");";
//            QFaces.getResLoader2().loadJavaScriptInit(parent, dragEvent);
//        }
//        if (this.visible) {
//            // 组件默认初始状态都是display:none, 只有在相关js装载完毕之后才打开。
//            String visibleEvent = "Q.U.open(\"" + this.frameId + "\")";
//            QFaces.getResLoader2().loadJavaScriptInit(parent, visibleEvent);
//        }
//    }
//
//    private final void encodeBeginWidthBorder(ResponseWriter rw) throws IOException {
//        String FRAME_00 = "07-" + face + "-00.png";
//        String FRAME_01 = "07-" + face + "-01.png";
//        String FRAME_02 = "07-" + face + "-02.png";
//        String FRAME_10 = "07-" + face + "-10.png";
//        String FRAME_11 = "07-" + face + "-11.png";
//        String FRAME_CLOSE = "07-" + face + "-close.png";
//
//        rw.startElement("table", parent);
//        rw.writeAttribute("id", frameId, null);
//        rw.writeAttribute("style", "display:none;position:" + cssPosition, null);
//        rw.writeAttribute("border", "0", null);
//        rw.writeAttribute("cellspacing", "0", null);
//        rw.writeAttribute("cellpadding", "0", null);
//        rw.startElement("tr", parent);
//        rw.startElement("td", parent);
//        rw.writeAttribute("class", styleFixBug, null);
//        QFaces.getResLoader2().loadImage(FRAME_00);
//        rw.endElement("td");
//
//        rw.startElement("td", parent);
//        rw.writeAttribute("style", "background:url(" + QFaces.getResLoader2().makeImageSrc(FRAME_01) + ") repeat-x", null);
//        rw.startElement("table", parent);
//        rw.writeAttribute("class", styleClassHeader, null);
//        rw.writeAttribute("border", "0", null);
//        rw.writeAttribute("cellspacing", "0", null);
//        rw.writeAttribute("cellpadding", "0", null);
//        rw.writeAttribute("width", "100%", null);
//        rw.startElement("tr", parent);
//        rw.startElement("td", parent);
//        rw.writeAttribute("id", headerId, null);
//        rw.writeText(labelHeader, null);
//        rw.endElement("td");
//        rw.startElement("td", parent);
//        rw.writeAttribute("width", "1", null);
//        if (this.renderCloseButton) {
//            rw.startElement("img", parent);
//            rw.writeAttribute("id", closeId, null);
//            rw.writeAttribute("src", QFaces.getResLoader2().makeImageSrc(FRAME_CLOSE), null);
//            rw.writeAttribute("style", "cursor:pointer;", null);
//            rw.writeAttribute("onclick", "Q.U.close(\"" + frameId + "\")", null);
//            rw.endElement("img");
//        }
//        rw.endElement("td");
//        rw.endElement("tr");
//        rw.endElement("table");
//        rw.endElement("td");
//
//        rw.startElement("td", parent);
//        rw.writeAttribute("class", styleFixBug, null);
//        QFaces.getResLoader2().loadImage(FRAME_02);
//        rw.endElement("td");
//        rw.endElement("tr");
//
//        rw.startElement("tr", parent);
//        rw.startElement("td", parent);
//        rw.writeAttribute("class", styleFixBug, null);
//        rw.writeAttribute("style", "background:url(" + QFaces.getResLoader2().makeImageSrc(FRAME_10) + ") repeat-y", null);
//        rw.endElement("td");
//
//        rw.startElement("td", parent);
//        rw.writeAttribute("style", "background-image:url(" + QFaces.getResLoader2().makeImageSrc(FRAME_11) + ")", null);
//    }
//
//    private final void encodeEndWidthBorder(ResponseWriter rw) throws IOException {
//        String FRAME_12 = "07-" + face + "-12.png";
//        String FRAME_20 = "07-" + face + "-20.png";
//        String FRAME_21 = "07-" + face + "-21.png";
//        String FRAME_22 = "07-" + face + "-22.png";
//
//        rw.endElement("td");
//        rw.startElement("td", parent);
//        rw.writeAttribute("class", styleFixBug, null);
//        rw.writeAttribute("style", "background:url(" + QFaces.getResLoader2().makeImageSrc(FRAME_12) + ") repeat-y", null);
//        rw.endElement("td");
//        rw.endElement("tr");
//        rw.startElement("tr", parent);
//        rw.startElement("td", parent);
//        rw.writeAttribute("class", styleFixBug, null);
//        QFaces.getResLoader2().loadImage(FRAME_20);
//        rw.endElement("td");
//
//        rw.startElement("td", parent);
//        rw.writeAttribute("class", styleFixBug, null);
//        rw.writeAttribute("style", "background:url(" + QFaces.getResLoader2().makeImageSrc(FRAME_21) + ") repeat-x", null);
//        rw.endElement("td");
//
//        rw.startElement("td", parent);
//        rw.writeAttribute("class", styleFixBug, null);
//        QFaces.getResLoader2().loadImage(FRAME_22);
//        rw.endElement("td");
//        rw.endElement("tr");
//        rw.endElement("table");
//    }
//
//    private final void encodeBeginNoBorder(ResponseWriter rw) throws IOException {
//        rw.startElement("table", parent);
//        rw.writeAttribute("id", this.frameId, null);
//        rw.writeAttribute("style", "display:none;position:" + cssPosition, null);
//        rw.writeAttribute("border", "0", null);
//        rw.writeAttribute("cellspacing", "0", null);
//        rw.writeAttribute("cellpadding", "0", null);
//        rw.startElement("tr", parent);
//        rw.startElement("td", parent);
//    }
//
//    private final void encodeEndNoBorder(ResponseWriter rw) throws IOException {
//        rw.endElement("td");
//        rw.endElement("tr");
//        rw.endElement("table");
//    }
//
//    // ---- Getter and Setter
//    public UIComponent getParent() {
//        return parent;
//    }
//
//    public void setParent(UIComponent parent) {
//        this.parent = parent;
//    }
//
//    /**
//     * 获取FrameId，frameId可用于控制窗口的打开或关闭,
//     * 如，在客户端可通过JavaScript来控制:Q.U.open(frameId)来打开窗口
//     * @return frameId
//     */
//    public String getFrameId() {
//        return frameId;
//    }
//
//    public void setFrameId(String frameId) {
//        this.frameId = frameId;
//    }
//
//    public String getHeaderId() {
//        return headerId;
//    }
//
//    public void setHeaderId(String headerId) {
//        this.headerId = headerId;
//    }
//
//    public String getCloseId() {
//        return closeId;
//    }
//
//    public void setCloseId(String closeId) {
//        this.closeId = closeId;
//    }
//
//    /**
//     * 获取Header的标签描述
//     * @return labelHeader
//     */
//    public String getLabelHeader() {
//        return labelHeader;
//    }
//
//    /**
//     * 设置Header的标签描述
//     * @param labelHeader
//     */
//    public void setLabelHeader(String labelHeader) {
//        this.labelHeader = labelHeader;
//    }
//
//    /**
//     * 获取Header的css样式类
//     * @return styleClassHeader
//     */
//    public String getStyleClassHeader() {
//        return styleClassHeader;
//    }
//
//    /**
//     * 设置Header的css样式类
//     * @param styleClassHeader
//     */
//    public void setStyleClassHeader(String styleClassHeader) {
//        this.styleClassHeader = styleClassHeader;
//    }
//
//    /**
//     * 获取使用的皮肤样式
//     * @return face
//     */
//    public String getFace() {
//        return face;
//    }
//
//    /**
//     * 设置使用的皮肤样式
//     * @param face
//     */
//    public void setFace(String face) {
//        this.face = face;
//    }
//
//    /**
//     * 获取是否渲染Frame的边框
//     * @return renderBorder
//     */
//    public Boolean getRenderBorder() {
//        return renderBorder;
//    }
//
//    /**
//     * 设置是否渲染Frame的边框
//     * @param renderBorder
//     */
//    public void setRenderBorder(Boolean renderBorder) {
//        this.renderBorder = renderBorder;
//    }
//
//    /**
//     * 获取是否允许Frame的拖动功能
//     * @return drag
//     */
//    public Boolean getDrag() {
//        return drag;
//    }
//
//    /**
//     * 设置Frame是否允许被拖动
//     * @param drag
//     */
//    public void setDrag(Boolean drag) {
//        this.drag = drag;
//    }
//
//    /**
//     * 获取是否渲染Frame的“关闭”按钮
//     * @return renderCloseButton
//     */
//    public Boolean getRenderCloseButton() {
//        return renderCloseButton;
//    }
//
//    /**
//     * 设置是否渲染Frame的“关闭”按钮
//     * @param renderCloseButton
//     */
//    public void setRenderCloseButton(Boolean renderCloseButton) {
//        this.renderCloseButton = renderCloseButton;
//    }
//
//    /**
//     * 获取Frame在客户端是否为可见的。
//     * @return visible
//     */
//    public Boolean getVisible() {
//        return visible;
//    }
//
//    /**
//     * 设置Frame在客户端是否为可见的。
//     * @param visible
//     */
//    public void setVisible(Boolean visible) {
//        this.visible = visible;
//    }
//
//    /**
//     * 获取frame的css属性position
//     * @return cssPosition
//     */
//    public String getCssPosition() {
//        return cssPosition;
//    }
//
//    /**
//     * 设置Frame的css属性position
//     */
//    public void setCssPosition(CssPosition cssPosition) {
//        this.cssPosition = cssPosition.name();
//    }
//
//    // ---- Reload Attribute below...
//    /**
//     * 重新载入指定属性的值，如果找不到该属性，则使用给定的默认值(defFrameId)
//     * @param defFrameId
//     * 		对应的属性的默认值，注：只有frameId属性找不到时，才会使用这个默认值。
//     */
//    public void reloadFrameId(String defFrameId) {
//        this.frameId = (String) QFaces.getAttribute(parent, "frameId", defFrameId);
//    }
//
//    /**
//     * 重新载入属性，如果属性值不存在，则使用给定的默认值。
//     * @param defHeaderId
//     * @see #reloadFrameId(String) 参考“关于重新载入属性的默认值”
//     */
//    public void reloadHeaderId(String defHeaderId) {
//        this.headerId = (String) QFaces.getAttribute(parent, "headerId", defHeaderId);
//    }
//
//    /**
//     * 重新载入属性，如果属性值不存在，则使用给定的默认值。
//     * @see #reloadFrameId(String) 参考“关于重新载入属性的默认值”
//     * @param defCloseId
//     */
//    public void reloadCloseId(String defCloseId) {
//        this.closeId = (String) QFaces.getAttribute(parent, "closeId", defCloseId);
//    }
//
//    /**
//     * 重新载入属性，如果属性值不存在，则使用给定的默认值。
//     * @param defLabelHeader
//     * @see #reloadFrameId(String) 参考“关于重新载入属性的默认值”
//     */
//    public void reloadLabelHeader(String defLabelHeader) {
//        this.labelHeader = (String) QFaces.getAttribute(parent, "labelHeader", defLabelHeader);
//    }
//
//    /**
//     * 重新载入属性，如果属性值不存在，则使用给定的默认值。
//     * @param defStyleClassHeader
//     * @see #reloadFrameId(String) 参考“关于重新载入属性的默认值”
//     */
//    public void reloadStyleClassHeader(String defStyleClassHeader) {
//        this.styleClassHeader = (String) QFaces.getAttribute(parent, "styleClassHeader", defStyleClassHeader);
//    }
//
//    /**
//     * 重新载入属性，如果属性值不存在，则使用给定的默认值。
//     * @param defFace
//     * @see #reloadFrameId(String) 参考“关于重新载入属性的默认值”
//     */
//    public void reloadFace(String defFace) {
//        this.face = (String) QFaces.getAttribute(parent, "face", defFace);
//    }
//
//    /**
//     * 重新载入属性，如果属性值不存在，则使用给定的默认值。
//     * @param defRenderBorder
//     * @see #reloadFrameId(String) 参考“关于重新载入属性的默认值”
//     */
//    public void reloadRenderBorder(Boolean defRenderBorder) {
//        this.renderBorder = QFaces.convertToBoolean(QFaces.getAttribute(parent, "renderBorder", defRenderBorder));
//    }
//
//    /**
//     * 重新载入属性，如果属性值不存在，则使用给定的默认值。
//     * @param defDrag
//     * @see #reloadFrameId(String) 参考“关于重新载入属性的默认值”
//     */
//    public void reloadDrag(Boolean defDrag) {
//        this.drag = QFaces.convertToBoolean(QFaces.getAttribute(parent, "drag", defDrag));
//    }
//
//    /**
//     * 重新载入属性，如果属性值不存在，则使用给定的默认值。
//     * @param defRenderCloseButton
//     * @see #reloadFrameId(String) 参考“关于重新载入属性的默认值”
//     */
//    public void reloadRenderCloseButton(Boolean defRenderCloseButton) {
//        this.renderCloseButton = QFaces.convertToBoolean(QFaces.getAttribute(parent, "renderCloseButton", defRenderCloseButton));
//    }
//
//    /**
//     * 重新载入属性，如果属性值不存在，则使用给定的默认值。
//     * @param defVisible
//     * @see #reloadFrameId(String) 参考“关于重新载入属性的默认值”
//     */
//    public void reloadVisible(Boolean defVisible) {
//        this.visible = QFaces.convertToBoolean(QFaces.getAttribute(parent, "visible", defVisible));
//    }
//
//    /**
//     * 重新载入属性，如果属性值不存在，则使用给定的默认值。
//     * @param defCssPosition
//     * @see #reloadFrameId(String) 参考“关于重新载入属性的默认值”
//     */
//    public void reloadCssPosition(CssPosition defCssPosition) {
//        this.cssPosition = (String) QFaces.getAttribute(parent, "cssPosition", defCssPosition.name());
//    }
//}
